<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ClientesDao
 *
 * @author Francisco Nieto Zamora
 */
class ClientesDao {

     public function mapearClientes($tab)
    {
        $lstClientes = new ArrayList();
        for($i=0;$i<count($tab);$i++)
        {
            $cliente = new BeanClientes();
            $cliente->setAdministrador($tab[$i]['ADMINISTRADOR']);
            $cliente->setCodCliente($tab[$i]['COD_CLIENTE']);
            $cliente->setApellidos($tab[$i]['APELLIDOS']);
            $cliente->setClave($tab[$i]['CLAVE']);
            $cliente->setCodSedeSuscripcion($tab[$i]['COD_SEDE_SUSCRIPCION']);
            $cliente->setDireccion($tab[$i]['DIRECCION']);
            $cliente->setEmail($tab[$i]['EMAIL']);
            $cliente->setNombre($tab[$i]['NOMBRE']);
            $cliente->setTelefono($tab[$i]['TELEFONO']);
            $lstClientes->add($cliente);
        }
        return $lstClientes;
    }
    public function insertarCliente($cliente)
    {
        $sql = 'INSERT INTO CLIENTES (NOMBRE, APELLIDOS, EMAIL, TELEFONO, DIRECCION, COD_SEDE_SUSCRIPCION, CLAVE, ADMINISTRADOR) VALUES (?, ?, ?, ?, ?, ?, ?, ?)';
        $sqlQuery = new SqlQuery($sql);

        $sqlQuery->set($cliente->getNombre());
        $sqlQuery->set($cliente->getApellidos());
        $sqlQuery->set($cliente->getEmail());
        $sqlQuery->set($cliente->getTelefono());
        $sqlQuery->set($cliente->getDireccion());
        $sqlQuery->set($cliente->getCodSedeSuscripcion());
        $sqlQuery->set($cliente->getClave());
        $sqlQuery->set($cliente->getAdministrador());
        $id = QueryExecutor::executeInsert($sqlQuery);
        $cliente->setCodCliente($id);
        
        return $id;
    }

   
    public function obtenerClienteSQL($cliente)
    {
        $sql='SELECT * FROM CLIENTES WHERE 1=1 ';

        if($cliente->getAdministrador()!=null)
        {
            $sql=$sql." AND ADMINISTRADOR=".$cliente->getAdministrador();
        }
        if($cliente->getApellidos()!=null)
        {
            $sql=$sql." AND APELLIDOS='".$cliente->getApellidos()."'";
        }
        if($cliente->getClave()!=null)
        {
            $sql=$sql." AND CLAVE='".$cliente->getClave()."'";
        }
        if($cliente->getCodCliente()!=null)
        {
            $sql=$sql." AND COD_CLIENTE=".$cliente->getCodCliente();
        }
        if($cliente->getCodSedeSuscripcion()!=null)
        {
            $sql=$sql." AND COD_SEDE_SUSCRIPCION=".$cliente->getCodSedeSuscripcion();
        }
        if($cliente->getDireccion()!=null)
        {
            $sql=$sql." AND DIRECCION='".$cliente->getDireccion()."'";
        }
        if($cliente->getEmail()!=null)
        {
            $sql=$sql." AND EMAIL='".$cliente->getEmail()."'";
        }
        if($cliente->getNombre()!=null)
        {
            $sql=$sql." AND NOMBRE='".$cliente->getNombre()."'";
        }
        if($cliente->getTelefono()!=null)
        {
            $sql=$sql." AND TELEFONO=".$cliente->getTelefono();
        }
        return $sql;
    }

     public function obtenerClientes($cliente)
    {
        $sql = $this->obtenerClienteSQL($cliente);
        $sqlQuery = new SqlQuery($sql);
        $tab=QueryExecutor::execute($sqlQuery);
        $lstClientes = $this->mapearClientes($tab);
        return $lstClientes;
    }
   
}
?>
